﻿using System;
using System.Collections.Generic;
using System.Xml;
using Entities;


namespace Logic
{
    internal sealed class XML
    {
        public static XmlDocument xml(List<Candidate> listaCandidatos)
        {
            List<Candidate> lc = listaCandidatos;
            XmlDocument XMLdoc = new XmlDocument();
            XMLdoc.CreateXmlDeclaration("1.0", "utf-8", "yes");
            XmlNode CandidatosXML = XMLdoc.CreateElement("Candidatos");
            XMLdoc.AppendChild(CandidatosXML);

            byte y = 0;
            byte z = 0;
            byte x = 0;
            foreach (Candidate cd in lc)
            {
                if (!string.IsNullOrWhiteSpace(cd.name))
                {
                    XmlNode Candidato = XMLdoc.CreateElement("Candidato" + x);
                    CandidatosXML.AppendChild(Candidato);
                    XmlNode Nombre = XMLdoc.CreateElement("Nombre");
                    Nombre.InnerText = cd.name;
                    Candidato.AppendChild(Nombre);
                    for (; y <= x; y++)
                    {
                        if (!string.IsNullOrWhiteSpace(cd.lastName))
                        {
                            XmlNode PrimerApellido = XMLdoc.CreateElement("PrimerApellido");
                            PrimerApellido.InnerText = cd.lastName;
                            Candidato.AppendChild(PrimerApellido);

                            for (; z <= y; z++)
                            {
                                if (!string.IsNullOrWhiteSpace(cd.secondLastName))
                                {
                                    XmlNode SegundoApellido = XMLdoc.CreateElement("SegundoApellido");
                                    SegundoApellido.InnerText = cd.secondLastName;
                                    Candidato.AppendChild(SegundoApellido);
                                }
                                else { break; }
                            }
                        }
                        else { break; }
                    }
                }
                else { break; }
                x++;
            }

            XmlDeclaration encabezado = XMLdoc.CreateXmlDeclaration("1.0", "utf-8", "yes");
            XmlElement principal = XMLdoc.DocumentElement;
            XMLdoc.InsertBefore(encabezado, principal);

            return XMLdoc;
        }
    }

}
